package com.fdb.efp.nls.service.dao;

import com.fdb.efp.nls.service.domain.ContTempG;
import com.fdb.efp.nls.service.vo.ContTempGVO;
import com.fdb.efp.nls.service.vo.ContTempRelGVO;

import java.util.List;

/**
 * <p>DAO interface:合同模板组信息表				<p>
 * @author fuzm
 * @date 2018-05-07
 */
public interface ContTempGDao {
	
	public int insertContTempG(ContTempG contTempG);
	/**
	 * 只能删除待生效的合同模版组
	 * @param contTempG
	 * @return
	 */
	public int deleteByPk(ContTempG contTempG);
	/**
	 * 删除合同模版组关联信息
	 * @param contTempG
	 * @return
	 */
	public int deletContTempRelGByGroupId(ContTempG contTempG);
	
	public int updateByPk(ContTempG contTempG);
	/**
	 * 更新并失效合同模版组
	 * @param contTempG
	 * @return
	 */
	public int updateSubmitByPk(ContTempG contTempG);
	/**
	 * 查询 是否有生效的产品引用该模版
	 * @param contTempG
	 * @return
	 */
	public int queryPrdQuote(ContTempG contTempG);
	/**
	 * 失效合同模版组
	 * @param contTempG
	 * @return
	 */
	public int disableContTempG(ContTempG contTempG);
	
	public ContTempG queryByPk(ContTempG contTempG);
	
	public List<ContTempG> queryAllCurrLegalOrgByPage(ContTempGVO contTempG);
	
	public List<ContTempG> queryAllOwnerByPage(ContTempGVO contTempG);
	
	public List<ContTempG> queryAllCurrOrgByPage(ContTempGVO contTempG);
	
	public List<ContTempG> queryAllCurrDownOrgByPage(ContTempGVO contTempG);
	/**
	 * 查询是否已存在 合同模版关联信息
	 * @param contTempRelGVO 合同模版组ID, 合同模版ID
	 * @return
	 */
	public int qureyContTempRelGCountByPK(ContTempRelGVO contTempRelGVO);
	/**
	 * 新增合同模版组关联信息
	 * @param contTempRelGVO
	 * @return
	 */
	public int insertContTempRelG(ContTempRelGVO contTempRelGVO);
	/**
	 * 删除合同模版组关联信息
	 * @param contTempRelGVO
	 * @return
	 */
	public int deleteContTempRelG(ContTempRelGVO contTempRelGVO);
	/**
	 * 查询当前登录用户 所属法人机构码 下生效的合同模版组
	 * @param contTempG
	 * @return
	 */
	public List<ContTempG> queryAllEnablesByPage(ContTempGVO contTempG);
	/**
	 * 查询合同模版组关联的合同模版总数
	 * @param contGroupId
	 * @return
	 */
	public int queryContTempRelCount(String contGroupId);
}
